package com.shuai.service;

import com.shuai.dto.PasswordEditDTO;
import com.shuai.dto.UserDTO;
import com.shuai.dto.UserLoginDTO;
import com.shuai.dto.UserPageQueryDTO;
import com.shuai.entity.User;
import com.shuai.result.PageResult;
import com.shuai.vo.UserVO;

import java.util.List;

public interface UserService {

    User login(UserLoginDTO userLoginDTO);
    /**
     * 新增用户
     * @param userDTO
     */
    void save(UserDTO userDTO);

    /**
     * 分页查询用户
     * @param userPageQueryDTO
     * @return PageResult
     * */
    PageResult pageQuery(UserPageQueryDTO userPageQueryDTO);



    /**
     *根据id查询用户信息
     * */
    User getById(Long id);


    /**
     * 修改用户信息
     * */
    void update(UserDTO userDTO);

    /**
     * 修改密码
     * */
    void updatePassword(PasswordEditDTO passwordEditDTO);

    /**
     * 邀请员工加入企业
     * @param id
     */
    void invite(Long id);

    List<UserVO> listAllUsersInEnterprise();

    /**
     * 在企业内删除成员
     * @param id
     */
    void deleteInEnterpriseWithProjectRelation(Long id);

    /**
     * 根据用户名查询用户
     * @param username
     * @return
     */
    List<UserVO> listByUsername(String username);

    void modifyAvatar(String avatarUrl);
}